// run: $exec < 1008.in
#include <set>
#include <iostream>
#include <algorithm>
#include <vector>
#include <utility>

int n;

int main()
{
	std::ios::sync_with_stdio(false);
	int T; std::cin >> T;
	while (T--) {
		std::cin >> n;
		std::vector<std::pair<std::pair<int, int>, int> > da(n);
		for (int i = 0; i < n; i++) da[i].second = i;
		for (int i = 0; i < n; i++) std::cin >> da[i].first.first;
		for (int i = 0; i < n; i++) std::cin >> da[i].first.second;
		std::sort(da.begin(), da.end());

		std::set<std::pair<int, int> > f;
		std::vector<int> ans;
		int count = 0, i = 0;
		for (; ; ) {
			for (; i < n && da[i].first.first <= count; i++)
				f.insert(std::make_pair(da[i].first.second, da[i].second));
			if (f.empty()) break;

			while (!f.empty() && (*(f.begin())).first < count) {
				ans.push_back((*(f.begin())).second);
				f.erase(f.begin());
			}
			if (!f.empty()) {
				count++;
				ans.push_back((*(f.begin())).second);
				f.erase(f.begin());
			}
		}

		for (int ti = i; ti < n; ti++) ans.push_back(da[ti].second);
		std::cout << count << '\n';
		std::cout << ans[0] + 1;
		for (int i = 1; i < n; i++) std::cout << ' ' << ans[i] + 1;
		std::cout << '\n';
	}

}



